package com.flying.inherit.constructor;

/**
 * @author 刘鹏飞
 * @ClassName TestConstrustor
 * @Date 2024/12/9 23:01
 * @Created by 刘鹏飞
 * @Description 继承以后构造器的特点
 */
public class TestConstructor {

    public static void main(String[] args) {
        /*
        子类在创建对象时，会先调用父类的构造方法，初始化父类空间！
        子类的构造方法执行前，都会有一个super()的代码，默认调用父类空参的构造方法！
        如果父类没有空参的构造方法，子类最好也不要有空参的构造方法！
        子类的构造方法在父类的基础撒花姑娘扩展，在子类的构造方法里使用super(参数)，指向到底调用父类哪个构造器
         */

        Son son = new Son(10,"rose");

        System.out.println("son = " + son);
        son.demo();
        son.test();
    }

}


class Son extends Father {
    String name;


    public Son(){
        super(5);
        System.out.println("heiheihei");
        System.out.println("Son被初始化了！");
    }

    public Son(int a,String name){
        super(a);
        this.name=name;
    }


}


class Father {
    private int a;


    public Father(int a){
        this.a=a;
        System.out.println("Father被初始化了！");
    }

    protected void demo(){}
    void test(){}

}
